import router from "@/router/index";
import { ElMessage } from "element-plus";
import axios from "axios";

const whiteList = ['/login'];
let isAdminLoggedIn = true;
router.beforeEach((to, from, next) => {
    if (to.path === '/login') {
        // 如果用户正在尝试访问登录页面，无需检查管理员登录状态，直接允许访问
        next();
    } else {
        // 检查管理员是否已登录
        if (isAdminLoggedIn) {
            // 管理员已登录，允许导航到下一个页面
            next();
        } else {
            // 管理员未登录，重定向到登录页面
            next('/login');
        }
    }
});

// 在 handleLogin 方法中设置 isAdminLoggedIn 的值
    const checkAdminLoggedIn = async () => {
    try {
        const response = await axios.post("adminLogin", form.value);
        const data = response.data;
        if (data.code === 0) {
            // 登录成功，设置 isAdminLoggedIn 为 true
            isAdminLoggedIn = true;
            console.log("Admin login successful. isAdminLoggedIn:", isAdminLoggedIn);
            // 存储其他管理员信息（可选）
            window.sessionStorage.setItem("adminId", data.id);
            window.sessionStorage.setItem("adminName", data.admin_name);
            // 重定向到根路径
            await router.replace("/");
        } else {
            // 登录失败，显示错误消息
            ElMessage.error(data.msg);
        }
    } catch (error) {
        // 请求失败，显示错误消息
        console.error("Error:", error);
        ElMessage.error("系统错误");
    }
};

export { checkAdminLoggedIn };